Network traffic is transmitted across a network, such as the Internet, from a sending system (e.g., a computer system) to a receiving system (e.g., a computer system) via a network interface card (NIC). The NIC is a piece of hardware found in a typical computer system that includes functionality to send and receive network traffic. Typically, network traffic is transmitted in the form of packets, where each packet includes a header and a payload. The header contains information regarding the source address, destination address, size, transport protocol used to transmit the packet, and various other identification information associated with the packet. The payload contains the actual data to be transmitted from the network to the receiving system.
Each of the packets sent between the sending system and receiving system is typically associated with a connection. The connection ensures that packets from a given process on the sending system reach the appropriate process on the receiving system. Packets received by the receiving system (via a NIC associated with the receiving system) are analyzed by a classifier to determine the connection associated with the packet.
With the rising popularity of offering critical services (e.g., web services, applications, identity services, mail services, etc.) on the Internet, attacks on the receiving system that offer such critical services have become relatively common. A common attack is a denial of service (DOS) attack where a sending system bombards a receiving system (i.e., host) with a large number of packets causing excessive amounts of endpoint, and possibly transit, network bandwidth (or resources) to be consumed. Such attacks are commonly referred to as packet flooding attacks.
The Internet is entirely composed of limited resources. Such limited resources as bandwidth, processing power, and storage capacities are all common targets for DOS attacks designed to consume enough of a host's available resources to cause some level of service disruption. One reaction to DOS attacks is to overprovision a system to handle excess loads that may be generated by the attack. However, a limit exists to the amount of limited resources that can be allocated to a system, both in terms of availability and cost. Accordingly, most of the service providers with any level of critical services on the Internet deploy various kinds of intrusion detection systems (IDS) to assist in defending against DOS attacks. Ideally, legitimate traffic is capable of being isolated from attacking traffic under a DOS attack. Traditionally, isolating the traffic is done by the host which pays tremendous performance costs for pulling the packet into main memory and processing the packet before discovering whether the packet is legitimate.
Recently, the use of source IP address spoofing during DOS attacks and the advent of distributed attack methods and tools have provided a continuing challenge in the area of DOS attack prevention. For example, consider the scenario where the attacker has a large amount of CPU resources and performs a legitimate operation (like retrieving a home page) again and again, which is often undetectable. The result is an attack with potentially no way to recover.